package cn.mitool.crypto.codec;

import java.nio.charset.StandardCharsets;

/**
 * Base16
 *
 * @author dragon
 * @version 1.0
 * @date 2024/7/10 11:21
 */
public class Base16 {

    /**
     * Base16编码
     *
     * @param data 数据
     * @return Base16编码字符串
     */
    public static String encode(String data) {
        return encode(data.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * Base16编码
     *
     * @param data 数据
     * @return Base16编码字符串
     */
    public static String encode(byte[] data) {
        org.apache.commons.codec.binary.Base16 base16 = new org.apache.commons.codec.binary.Base16();
        return new String(base16.encode(data));
    }

    /**
     * Base16解码
     *
     * @param data 数据
     * @return Base16解码字符串
     */
    public static String decode(String data) {
        return decode(data.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * Base16解码
     *
     * @param data 数据
     * @return Base16解码字符串
     */
    public static String decode(byte[] data) {
        org.apache.commons.codec.binary.Base16 base16 = new org.apache.commons.codec.binary.Base16();
        return new String(base16.decode(data));
    }

}
